<?php

namespace app\common\model;

use think\Model;

/**
 * 用户地址模型
 */
class UserAddress extends Model
{
    // 表名
    protected $name = 'user_address';
    
    // 开启自动写入时间戳字段
    protected $autoWriteTimestamp = 'int';
    
    // 定义时间戳字段名
    protected $createTime = 'createtime';
    protected $updateTime = 'updatetime';
    protected $deleteTime = 'deletetime';
    
    // 追加属性
    protected $append = [
        'full_address'
    ];
    
    /**
     * 获取完整地址
     */
    public function getFullAddressAttr($value, $data)
    {
        return $data['province'] . ' ' . $data['city'] . ' ' . $data['district'] . ' ' . $data['address'];
    }
    
    /**
     * 关联用户模型
     */
    public function user()
    {
        return $this->belongsTo('User', 'user_id', 'id');
    }
    
    /**
     * 设置默认地址
     * 
     * @param int $user_id 用户ID
     * @param int $address_id 地址ID
     * @return bool
     */
    public static function setDefault($user_id, $address_id)
    {
        // 先将该用户所有地址设为非默认
        self::where('user_id', $user_id)->update(['is_default' => 0]);
        
        // 将指定地址设为默认
        return self::where('id', $address_id)
            ->where('user_id', $user_id)
            ->update(['is_default' => 1]);
    }
}